perm filename IO.FAI[MUS,LCS] blob
sn#058114 filedate 1974-01-08 generic text, type T, neo UTF8
00300 TITLE MIXIO ; ********* AUG 13,73 *********
00400 INTERNAL GETFI2,FASTI2,ZBIT,USETI
00500
00700
00900
01000 CHβ12
01100 CH2β11
01200 CH3β13
01300
01400 DEFINE ERROR (MSG)
01500 < JSA 16,.ERROR
01600 JUMP [ASCIZ/MSG/
01700 ]
01800 >
01900
02000 REGS: BLOCK 20
02100
02200 ; CALL USETI(WDS/128)
02300
02400 USETI: 0
02500 MOVE 1,@(16)
02600 USETI CH2,(1)
02700 JRA 1,1(16)
02800
02900 ; CALL ZBIT(<INPUT ARRAY>,<OUTPUT ARRAY>)
03000 ; (256 WDS) (512 WDS)
03100
03200 ZBIT: 0
03300 MOVE 2,(16)
03400 MOVE 1,1(16)
03500 HRLI 2,-=256
03600
03700 LOOP: HLRE 0,(2)
03800 FSC 0,233 ;FLOAT IT
03900 MOVEM 0,(1) ; GETS 512 18-BIT SAMPLES OUT OF 256 WDS.
04000 HRRE 0,(2)
04100 FSC 0,233
04200 MOVEM 0,1(1)
04300 ADDI 1,2
04400 AOBJN 2,LOOP
04500 JRA 16,1(16)
04600
04700 ;CALL GETFI2(<FILE>)
04800
04900 GETFI2: 0
05000 MOVE 0,@0(16)
05100 MOVEM 0,FILNAM
05200 JSA 16,INTFIZ
05300 MOVE 0,[SIXBIT/DMD/]
05400 MOVEM 0,DIR+1
05500 JSA 16,LKUP
05600 SKIPA
05700 JRST GETF3
05800 SETZM DIR+1
05900 JSA 16,LKUP
06000 0
06100 GETF3: JRA 16,1(16)
06200
06300 LKUP: 0
06400 SETZM DIR+2
06500 SETZM DIR+3
06600 LOOKUP CH3,DIR
06700 JRA 16,0(16)
06800 JRA 16,1(16)
06900
07000 INTFIZ: 0 ;INITS DSK FOR INPUT
07100 MOVEI REGS
07200 BLT REGS+3
07300 INIT CH3,17
07400 SIXBIT/DSK/
07500 0
07600 ERROR <CAN'T INIT DSK!>
07700 JRST INTF4
07800
07900 DIR: BLOCK 4
08000
08100
08200 ;CALL FASTI2(<ARRAY>,<NO. WORDS>)
08300
08400 FASTI2: 0
08500 HRRZ 0,0(16)
08600 SUBI 0,1
08700 MOVEM 0,COM
08800 MOVN 0,@1(16)
08900 HRLM 0,COM
09000 INPUT CH3,COM
09100 STATZ CH3,740000
09200 0
09300 JRA 16,2(16)
09400
09500 COM: OCT 0,0
09600 COM1: 0
09700 BLKNUM: 0
09800
10700 INTF4: MOVE 0,FILNAM#
10800 MOVEM 0,FN#
10900 MOVE 1,[POINT 7,FN]
11000 INTF3: MOVE 2,[POINT 6,DIR]
11100 SETZM DIR
11200 MOVEI 3,5
11300 INTF1: ILDB 0,1
11400 CAIN 0," "
11500 JRST INTF2
11600 SUBI 0,40
11700 IDPB 0,2
11800 SOJG 3,INTF1
11900 INTF2: HRLZI REGS
12000 BLT 3
12100 JRA 16,0(16)
12200
12300 .ERROR: 0
12400 OUTSTR [ASCIZ/?
12500 /] ;MAKE SURE HE CAN SEE HIS ERROR
12600 OUTSTR @(16) ;OUTPUT ERROR MESSAGE
12700 CALLI 1,12 ;LET USER CONTI2UE
12800 JRA 16,1(16)
45000 INTERNAL PUTFI2,FASTO2,FINFI2
45100 ;CALL PUTFI2(<FI2E>)
45200
45300 PUTFI2: 0
45400 MOVE 0,@0(16)
45500 MOVEM FILNAM
45600 JSA 16,INTFIL
45700 MOVE 0,[SIXBIT/DMD/]
45800 MOVEM 0,DIR+1
45900 SETZM DIR+2
46000 SETZM DIR+3
46100 ENTER CH,DIR
46200 0
46300 JRA 16,1(16)
46400
46500
46600 INTFIL: 0
46700 MOVEI REGS
46800 BLT REGS+3
46900 INIT CH,17
47000 SIXBIT/DSK/
47100 0
47200 0
47300 MOVE 0,FILNAM#
47400 MOVEM 0,FN#
47500 MOVE 1,[POINT 7,FN]
47600 MOVE 2,[POINT 6,DIR]
47700 SETZM DIR
47800 MOVEI 3,5
49100 JRST INTF1
49200 ;CALL FASTO2(<ARRAY>,<NO. OF WORDS>)
49300
49400 FASTO2: 0
49500 HRRZ 0,0(16)
49600 SUBI 0,1
49700 MOVEM 0,COM
49800 MOVN 0,@1(16)
49900 HRLM 0,COM
50000 OUTPUT CH,COM
50100 STATZ CH,740000
50200 0
50300 JRA 16,2(16)
50400
50500
50600
50700 ;CALL FINFI2
50800
50900 FINFI2: 0
51000 CLOSE CH,0
51100 STATZ CH,740000
51200 0
51300 RELEASE CH,0
51400 JRA 16,0(16)
52400 END